package valueobject

type ExperimentOption func(e *Experiment)

func NewExperiment(opts ...ExperimentOption) ExperimentVO {
	var exp Experiment
	for _, opt := range opts {
		opt(&exp)
	}
	return &exp
}

func WithExpID(id uint) ExperimentOption {
	return func(e *Experiment) {
		e.ID = id
	}
}

func WithExpName(name string) ExperimentOption {
	return func(e *Experiment) {
		e.Name = name
	}
}

func WithExpDescription(description string) ExperimentOption {
	return func(e *Experiment) {
		e.Description = description
	}
}

func WithExpQueue(queue string) ExperimentOption {
	return func(e *Experiment) {
		e.Queue = queue
	}
}
